/*!
 * \file BitParallelCliquer.h
 *
 * \date Jan 31, 2014
 * \author correa
 */
#ifndef BITPARALLELCLIQUER_H_
#define BITPARALLELCLIQUER_H_

#include <Grafo.h>
#include <Cliquer.h>

class BitParallelCliquer : public Cliquer
{
	const int		_n;
	const Grafo&	_grafo;
	VertexSet& 		_RR;
	SingleNodeSet 	_nodeRR;

public:
	BitParallelCliquer(const Grafo &g, bool clqOrStab);
	~BitParallelCliquer();
	int optimize(const VertexSet &subgrafo, ProjectableCliqueSet &clique, int cotaInferior=0,
			int cotaSuperior=INT_MAX, int tolerancia=0);
	int optimize(const IntValueArray& pesos, const VertexSet &subgrafo,
			ProjectableCliqueSet &clique,
			int cotaInferior=0, int cotaSuperior=INT_MAX, int tolerancia=0);
	double optimize(const DoubleValueArray& pesos, const VertexSet &subgrafo,
			ProjectableCliqueSet &clique, double cotaInferior=0.0, double cotaSuperior=DBL_MAX, double tolerancia=0.0);
};

#endif /* BITPARALLELCLIQUER_H_ */
